#include "mainwindow.h"
#include <QIcon>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    setWindowTitle(tr("SVG Viewer"));
    createMenu();

    svgWindow =new SvgWindow;
    setCentralWidget(svgWindow);
}

MainWindow::~MainWindow()
{

}

void MainWindow::createMenu()
{
    QMenu *fileMenu =menuBar()->addMenu(tr("文件"));

//    图标文件需要与qrc文件位于同一目录下或者在该目录的子目录中。另外，如果qrc文件中使用了前缀（例如<qresource prefix="/myresources">），要确保图标路径正确无误
    QAction *openAct =new QAction(QIcon(":/images/open.png"), tr("打开"), this);
    openAct->setShortcut(tr("Ctrl+O"));
    openAct->setStatusTip(tr("open file"));

    connect(openAct,SIGNAL(triggered()),this,SLOT(slotOpenFile()));
    fileMenu->addAction(openAct);
}

void MainWindow::slotOpenFile()
{
    // 我们可以新建一个ini文件来保存运行中生成的信息，第一个参数是文件保存的路径，可以任意设置，不过一般建议将文件放在程序代码的目录下；
    // 第二个参数是文件格式，这样我们就可以往这个文件写入信息，并且可以在程序运行时读取该文件，并且恢复上次的设置
    QSettings setting("./Setting.ini", QSettings::IniFormat);          // 为了能记住上次打开的路径
    QString lastPath = setting.value("LastFilePath").toString();

    QString filePath =QFileDialog::getOpenFileName(this,"打开",lastPath,"svg files(*.svg)");
    if (!filePath.isEmpty())
    {
        setting.setValue("LastFilePath",filePath);  //记录路径到QSetting中保存

        svgWindow->setFile(filePath);
    }
}
